﻿using BLevy.Entidad;
using BLevy.Negocio;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmServicioCompletado : Form
    {
        private int serviciosocio_id;
        public frmServicioCompletado()
        {
            InitializeComponent();
        }


        public frmServicioCompletado(int id)
        {
            InitializeComponent();

            serviciosocio_id = id;
        }


        private void IniciarControles()
        {
            txtAfiliado.Enabled = false;
            txtBeneficiario.Enabled = false;
            txtDireccion.Enabled = false;
            txtDocumento.Enabled = false;
            txtLocalidad.Enabled = false;
            txtNroCertificado.Enabled = false;
            txtZona.Enabled = false;
            txtServicio.Enabled = false;

            this.ActiveControl = dtpCumplimentado;
        }

        private void frmServicioCompletado_Load(object sender, EventArgs e)
        {
            IniciarControles();

            FindSolicitudPorId(serviciosocio_id);
        }

        private void FindSolicitudPorId(int solicitud_id)
        {
            ServicioSocio solicitud = null;
            try
            {
                solicitud = Servicios.FindByIdConSocioServicio(solicitud_id);
                if(solicitud != null)
                {
                    txtNroCertificado.Text = solicitud.socio.numero_certificado.ToString();
                    txtAfiliado.Text = solicitud.socio.apellido + ", " + solicitud.socio.nombres;
                    txtBeneficiario.Text = solicitud.beneficiario;
                    txtDireccion.Text = solicitud.socio.direccion;
                    txtDocumento.Text = solicitud.socio.documento;
                    Localidad localidad = Localidades.FindById(solicitud.socio.localidad_id);
                    txtLocalidad.Text = localidad.localidad;
                    Zona zona = Negocio.Zonas.FindById(solicitud.socio.zona_id);
                    txtZona.Text = zona.zona;
                    txtServicio.Text = solicitud.servicio.servicio;
                    
                }
            }
            catch(Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }


        private Boolean ValidarForm()
        {
            error.Clear();
            bool resultado = true;

            if(string.IsNullOrEmpty(txtObservaciones.Text))
            {
                txtObservaciones.Text = "NO INFORMA";
            }

            return resultado;
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if(ValidarForm() == true)
            {
                RegistrarCumplimentacion();
            }
        }

        private void RegistrarCumplimentacion()
        {
            try
            {
                ServicioSocioCompletado serviciocompletado = new ServicioSocioCompletado();
                serviciocompletado.fecha = dtpCumplimentado.Value;
                serviciocompletado.serviciosocio_id = serviciosocio_id;
                serviciocompletado.observaciones = txtObservaciones.Text;

                int resultado = Servicios.ServicioCumplimentado(serviciocompletado);
                if (resultado > 0)
                {
                    MessageBox.Show("Los datos se registraron correctamente.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Ocurrio un error al registrar los datos. Intente nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

            }
            catch(Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

    }
}
